home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / meltdown.lha / THEDOT / dots.s < prev   
Encoding:
Text File  |  1988-07-19  |  7.7 KB  |  279 lines

  1. *****************************************************************************
  2. *                                                                           *
  3. *                     Dot Routine                              * 
  4. *                                                                           *
  5. *  Start Date : 3/3/91                                                      *
  6. * Last Update : 3/3/91                                                      *
  7. *                                  Code : Melt Down *
  8. *                                                                           *
  9. *****************************************************************************
  10.  
  11. ; Include the macros
  12.  
  13.     Incdir    Df1:
  14.     Include    Source/Macro
  15.  
  16. *****************************************************************************
  17.  
  18. ; Dont forget to use chip ram
  19.  
  20.     Chip
  21.     
  22. *****************************************************************************
  23.  
  24. ; Kill the operating system for good mesure
  25.  
  26.     Kill        
  27.     
  28. *****************************************************************************
  29.  
  30. ; Load custom and set up copper list
  31.  
  32.     Lea    Custom,A5
  33.     Move.l    #Copper,Cop1lch(a5)
  34.     
  35. *****************************************************************************
  36.  
  37. ; Clear Some Memory
  38.  
  39.     Blitwait
  40.     Move.l    #$70000,Bltdpth(a5)
  41.     Move.l    #-1,Bltafwm(a5)
  42.     Move.w    #0,Bltdmod(a5)
  43.     Move.l    #$01000000,Bltcon0(a5)
  44.     Move.w    #258*64+20,Bltsize(a5)
  45.  
  46. *****************************************************************************
  47.  
  48. ; Main routine here
  49.  
  50. Mouse
  51.     Move.l    $dff004,d2
  52.     And.l    #$1ff00,d2    
  53.     Cmp.l    #$100,d2
  54.     Bne.s    Mouse
  55.     Eor.l    #$4000,ScreenPtr
  56.     Eor.l    #$4000,B1l
  57.     Bsr    Clear
  58.     Bsr    DoAllDots
  59.     Bsr    UpDate
  60.     Tstmice    Mouse                ; Pressed the mouse
  61.     
  62. *****************************************************************************
  63.  
  64. ; Return operating system and go back to user
  65.  
  66.     Heal
  67.     Clr.l    D0                ; No error
  68.     Rts
  69.     
  70. *****************************************************************************
  71.  
  72. Clear
  73.     Blitwait                ; Blitter Nasty But Why Do
  74.     Move.l    #$01000000,Bltcon0(a5)        ; Clear
  75.     Move.w    #$0000,Bltdmod(a5)        ; Skip No Bytes
  76.     Move.l    ScreenPtr,Bltdpth(A5)        ; Set Dest
  77.     Move.l    #-1,Bltafwm(a5)            ; Use All Bits
  78.     Move.w    #128*64+20,Bltsize(a5)        ; Fill Half Screen
  79.     Movem.l    a0-a6/d0-d7,-(a7)        ; Save The Regs
  80.     Movem.l    RegFiller(pc),a1-a6/d0-d7    ; Clear The Regs
  81.     Move.l    ScreenPtr,A0
  82.     Add.l    #10240,A0
  83.  
  84. ; 5120/56 = 91.42 Rnd Up = 92
  85.     Rept    92                ; Rept it 58 times
  86.     Movem.l    a1-a6/d0-d7,-(a0)        ; Clear 56 Butes
  87.     Endr                    ; End repeat
  88.     Movem.l    (a7)+,a0-a6/d0-d7        ; Restor Regs
  89.     Rts
  90. RegFiller
  91.     Dcb.l    16,0
  92.     Rts
  93.  
  94. *****************************************************************************
  95.  
  96. UpDate
  97.     Lea    Form1,A6
  98.     Movem.w    (a6)+,d0-d4
  99.     Move.w    #$1fe,d5
  100. LoopUp
  101.     Add.w    d1,(a6)
  102.     And.w    d5,(a6)+
  103.     Add.w    d2,(a6)
  104.     And.w    d5,(a6)+
  105.     Add.w    d3,(a6)
  106.     And.w    d5,(a6)+
  107.     Add.w    d4,(a6)
  108.     And.w    d5,(a6)+
  109.     Dbf    D0,LoopUp
  110.     Rts
  111.  
  112. *****************************************************************************
  113.  
  114. DoAllDots
  115.     Lea    Form1,A6
  116.     Lea    Shifts,A0
  117.     Move.w    (a6)+,D7
  118.     Add.w    #8,a6
  119.     Lea    XSin,A4                ;xsin
  120.     Lea    YSin,A3                ;ysin
  121.     Move.l    ScreenPtr,A1
  122. Loop
  123.     Movem.w    (a6)+,d0-d3
  124.     Move.w    (a4,d0),d0            
  125.     Add.w    (a4,d2),d0            
  126.     Move.w    (A3,d1),d1            
  127.     Add.w    (A3,d3),d1    
  128.     Add.w    (a0,d0),D1
  129.     Move.w    2(a0,d0),D0
  130.     Or.b    d0,(a1,d1)
  131.     Dbf    D7,Loop
  132.     Rts
  133.  
  134. *****************************************************************************
  135.  
  136. ScreenPtr
  137.     Dc.l    $70000
  138.     
  139. *****************************************************************************
  140.  
  141. ShfSet    Macro
  142.     Dc.w    \1,%0000000010000000
  143.     Dc.w    \1,%0000000001000000
  144.     Dc.w    \1,%0000000000100000
  145.     Dc.w    \1,%0000000000010000
  146.     Dc.w    \1,%0000000000001000
  147.     Dc.w    \1,%0000000000000100
  148.     Dc.w    \1,%0000000000000010
  149.     Dc.w    \1,%0000000000000001
  150.     Endm
  151. Shifts
  152. A    set    0
  153.     Rept    40
  154.     ShfSet    a
  155. A    Set    a+1
  156.     Endr
  157.  
  158. *****************************************************************************
  159.  
  160. ; All copper list after here
  161.  
  162. Copper
  163.  
  164.     Spr_Off                    ; Switch sprites off
  165.     Cmove    $2c81,Diwstrt
  166.     Cmove    $2cc1,Diwstop
  167.     Cmove    $0038,Ddfstrt
  168.     Cmove    $00d0,Ddfstop
  169.     Cmove    $0000,Bpl1mod            
  170.     Cmove    $0000,Bpl2mod
  171.     Cmove    $0000,Color00
  172.     Cmove    $0fff,Color01
  173.     Cmove    $0007,Bpl1pth
  174. B1l
  175.     Cmove    $0000,Bpl1ptl
  176.     Cmove    $1200,Bplcon0
  177.     Endcop
  178.  
  179. *****************************************************************************
  180.  
  181. XSin
  182.     Rept    2
  183.     dc.w    159*4,159*4,159*4,159*4,159*4,158*4,158*4,158*4
  184.     dc.w    157*4,157*4,157*4,156*4,156*4,155*4,154*4,154*4
  185.     dc.w    153*4,152*4,151*4,151*4,150*4,149*4,148*4,147*4
  186.     dc.w    146*4,144*4,143*4,142*4,141*4,140*4,138*4,137*4
  187.     dc.w    136*4,134*4,133*4,131*4,130*4,128*4,127*4,125*4
  188.     dc.w    124*4,122*4,120*4,119*4,117*4,115*4,113*4,112*4
  189.     dc.w    110*4,108*4,106*4,104*4,103*4,101*4,99*4,97*4
  190.     dc.w    95*4,93*4,91*4,89*4,87*4,85*4,83*4,81*4
  191.     dc.w    80*4,78*4,76*4,74*4,72*4,70*4,68*4,66*4
  192.     dc.w    64*4,62*4,60*4,58*4,56*4,55*4,53*4,51*4
  193.     dc.w    49*4,47*4,46*4,44*4,42*4,40*4,39*4,37*4
  194.     dc.w    35*4,34*4,32*4,31*4,29*4,28*4,26*4,25*4
  195.     dc.w    23*4,22*4,21*4,19*4,18*4,17*4,16*4,15*4
  196.     dc.w    13*4,12*4,11*4,10*4,9*4,8*4,8*4,7*4
  197.     dc.w    6*4,5*4,5*4,4*4,3*4,3*4,2*4,2*4
  198.     dc.w    2*4,1*4,1*4,1*4,0*4,0*4,0*4,0*4
  199.     dc.w    0*4,0*4,0*4,0*4,0*4,1*4,1*4,1*4
  200.     dc.w    2*4,2*4,2*4,3*4,3*4,4*4,5*4,5*4
  201.     dc.w    6*4,7*4,8*4,8*4,9*4,10*4,11*4,12*4
  202.     dc.w    13*4,15*4,16*4,17*4,18*4,19*4,21*4,22*4
  203.     dc.w    23*4,25*4,26*4,28*4,29*4,31*4,32*4,34*4
  204.     dc.w    35*4,37*4,39*4,40*4,42*4,44*4,46*4,47*4
  205.     dc.w    49*4,51*4,53*4,55*4,56*4,58*4,60*4,62*4
  206.     dc.w    64*4,66*4,68*4,70*4,72*4,74*4,76*4,78*4
  207.     dc.w    80*4,81*4,83*4,85*4,87*4,89*4,91*4,93*4
  208.     dc.w    95*4,97*4,99*4,101*4,103*4,104*4,106*4,108*4
  209.     dc.w    110*4,112*4,113*4,115*4,117*4,119*4,120*4,122*4
  210.     dc.w    124*4,125*4,127*4,128*4,130*4,131*4,133*4,134*4
  211.     dc.w    136*4,137*4,138*4,140*4,141*4,142*4,143*4,144*4
  212.     dc.w    146*4,147*4,148*4,149*4,150*4,151*4,151*4,152*4
  213.     dc.w    153*4,154*4,154*4,155*4,156*4,156*4,157*4,157*4
  214.     dc.w    157*4,158*4,158*4,158*4,159*4,159*4,159*4,159*4
  215.     Endr
  216.     
  217. *****************************************************************************
  218.  
  219. YSin
  220.     Rept    2
  221.     dc.w    127*40,127*40,127*40,127*40,127*40,127*40,126*40,126*40
  222.     dc.w    126*40,125*40,125*40,125*40,124*40,124*40,123*40,123*40
  223.     dc.w    122*40,122*40,121*40,120*40,120*40,119*40,118*40,117*40
  224.     dc.w    116*40,115*40,115*40,114*40,113*40,112*40,111*40,109*40
  225.     dc.w    108*40,107*40,106*40,105*40,104*40,103*40,101*40,100*40
  226.     dc.w    99*40,97*40,96*40,95*40,93*40,92*40,91*40,89*40
  227.     dc.w    88*40,86*40,85*40,83*40,82*40,80*40,79*40,77*40
  228.     dc.w    76*40,74*40,73*40,71*40,70*40,68*40,67*40,65*40
  229.     dc.w    64*40,62*40,60*40,59*40,57*40,56*40,54*40,53*40
  230.     dc.w    51*40,50*40,48*40,47*40,45*40,44*40,42*40,41*40
  231.     dc.w    39*40,38*40,36*40,35*40,34*40,32*40,31*40,30*40
  232.     dc.w    28*40,27*40,26*40,24*40,23*40,22*40,21*40,20*40
  233.     dc.w    19*40,18*40,16*40,15*40,14*40,13*40,12*40,12*40
  234.     dc.w    11*40,10*40,9*40,8*40,7*40,7*40,6*40,5*40
  235.     dc.w    5*40,4*40,4*40,3*40,3*40,2*40,2*40,2*40
  236.     dc.w    1*40,1*40,1*40,0*40,0*40,0*40,0*40,0*40
  237.     dc.w    0*40,0*40,0*40,0*40,0*40,0*40,1*40,1*40
  238.     dc.w    1*40,2*40,2*40,2*40,3*40,3*40,4*40,4*40
  239.     dc.w    5*40,5*40,6*40,7*40,7*40,8*40,9*40,10*40
  240.     dc.w    11*40,12*40,12*40,13*40,14*40,15*40,16*40,18*40
  241.     dc.w    19*40,20*40,21*40,22*40,23*40,24*40,26*40,27*40
  242.     dc.w    28*40,30*40,31*40,32*40,34*40,35*40,36*40,38*40
  243.     dc.w    39*40,41*40,42*40,44*40,45*40,47*40,48*40,50*40
  244.     dc.w    51*40,53*40,54*40,56*40,57*40,59*40,60*40,62*40
  245.     dc.w    64*40,65*40,67*40,68*40,70*40,71*40,73*40,74*40
  246.     dc.w    76*40,77*40,79*40,80*40,82*40,83*40,85*40,86*40
  247.     dc.w    88*40,89*40,91*40,92*40,93*40,95*40,96*40,97*40
  248.     dc.w    99*40,100*40,101*40,103*40,104*40,105*40,106*40,107*40
  249.     dc.w    108*40,109*40,111*40,112*40,113*40,114*40,115*40,115*40
  250.     dc.w    116*40,117*40,118*40,119*40,120*40,120*40,121*40,122*40
  251.     dc.w    122*40,123*40,123*40,124*40,124*40,125*40,125*40,125*40
  252.     dc.w    126*40,126*40,126*40,127*40,127*40,127*40,127*40,127*40
  253.     Endr
  254.  
  255. *****************************************************************************
  256.  
  257. XY    Macro
  258.     Dc.w    (\1*2)&$1fe,(\2*2)&$1fe,(\3*2)&$1fe,(\4*2)&$1fe
  259.     Endm
  260. Form1    
  261.     Dc.w    256-1
  262.     Dc.w    2,2,2,2
  263. A    Set    0
  264. B    Set    256
  265.     
  266.     Rept    256
  267.     XY    A,B,b-a,A-B
  268. ;    XY    b,A,a-B,b+a
  269.  
  270. ;    XY    A,B,B,A
  271. A    Set    a+2
  272. B    Set    b-2
  273.     Endr
  274.     
  275. *****************************************************************************
  276.  
  277.  
  278.  
  279.